#ifndef OBJC_PRIVATE_PROTOCOL_H
#define OBJC_PRIVATE_PROTOCOL_H

#include "sobjc/runtime.h"
#include "sobjc/protocol.h"

#define PROTOCOL(p)     ((struct objc_protocol_private *)p)

typedef struct objc_protocol_private *ProtocolPrivate;

struct objc_protocol_private {
  Class isa;
  char *name;
  ProtocolList protocols;
  MethodDescriptionList inst_meths, opt_inst_meths,
                        class_meths, opt_class_meths;
};

struct objc_method_description {
  SEL name;
  char *types;
  BOOL required;
  BOOL inst;
};

#endif /* OBJC_PRIVATE_PROTOCOL_H */

